﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using TP2.Lib;

namespace TP2.XNA_Game.Vistas
{
    [VistaPara(typeof(Bombardero))]
    public class VistaBombardero : Vista
    {
        public VistaBombardero(){ }

        public VistaBombardero(Bombardero bombardero)
        {
            this.ElementoJuegoAsociado = bombardero;
            this.GirarImagenHorizontal = false;
        }

        public VistaBombardero(Bombardero bombardero, Texture2D imagen)
        {
            this.ElementoJuegoAsociado = bombardero;
            this.Default = imagen;
            this.GirarImagenHorizontal = false;
        }

        public override Vector2 GetVector2()
        {
            float x = (float)this.ElementoJuegoAsociado.Posicion[0];
            float y = (float)this.ElementoJuegoAsociado.Posicion[1];
            Vector2 vector = new Vector2(x, y);
            return (vector);
        }

        public override Texture2D GetTexture2D()
        {
            //Podemos agregar logica chequeando la Vida y poner distintas imagenes.
            return (this.Default);
        }

        public override void RangosElemento(GraphicsDeviceManager graphics)
        {
            //Establece rangos
            if (this.PosicionVista.Y < 0 + this.Default.Height)
            {
                (((MovimientoLineal)this.ElementoJuegoAsociado.Recorrido).VelocidadY) = (((MovimientoLineal)this.ElementoJuegoAsociado.Recorrido).VelocidadY * (-1));
            }
            if (this.PosicionVista.Y > graphics.PreferredBackBufferHeight - this.Default.Height)
            {
                (((MovimientoLineal)this.ElementoJuegoAsociado.Recorrido).VelocidadY) = (((MovimientoLineal)this.ElementoJuegoAsociado.Recorrido).VelocidadY * (-1));
            }
            if (this.PosicionVista.X < 0 + this.Default.Width)
            {
                (((MovimientoLineal)this.ElementoJuegoAsociado.Recorrido).VelocidadX) = (((MovimientoLineal)this.ElementoJuegoAsociado.Recorrido).VelocidadX * (-1));
            }
            if (this.PosicionVista.X > graphics.PreferredBackBufferWidth - this.Default.Width)
            {
                (((MovimientoLineal)this.ElementoJuegoAsociado.Recorrido).VelocidadX) = (((MovimientoLineal)this.ElementoJuegoAsociado.Recorrido).VelocidadX * (-1));
            }
        }

        public override void Actualizar()
        {
            this.PosicionVista = ((IVista)this).GetVector2();
        }
    }
}
